Skip to content

refactor(layout): move change detection into resolved layout stage#2814

Open
tupizz wants to merge 1 commit intotadeu/sd-2563-04-border-datafrom
tadeu/sd-2563-05-change-detection
Open

refactor(layout): move change detection into resolved layout stage#2814
tupizz wants to merge 1 commit intotadeu/sd-2563-04-border-datafrom
tadeu/sd-2563-05-change-detection

Conversation

@tupizz
Copy link
Copy Markdown
Contributor

@tupizz tupizz commented Apr 14, 2026

Summary

  • Add version field to all resolved item types
  • Create versionSignature.ts and hashUtils.ts in layout-resolved (moved from painter)
  • deriveBlockVersion() and fragmentSignature() now compute during resolution
  • Painter uses resolved version for change detection with legacy fallback

After this PR, ResolvedLayout carries ALL data the painter needs. The legacy sourceLayout, blocks, and measures fields in DomPainterInput can be removed in a follow-up.

PR Stack (SD-2563: Dumb Painter Refactor)

# PR Title Status
1 #2810 Lift page metadata into ResolvedPage
2 #2811 Lift fragment metadata into resolved paint items
3 #2812 Pre-compute SDT container keys in resolved layout
4 #2813 Pre-compute paragraph border data in resolved layout
5 #2814 Move change detection into resolved layout stage 👈 this PR

Test plan

  • 94/94 layout-resolved tests pass (10 new)
  • painter-dom types compile cleanly
  • No rendering behavior changes

@linear
Copy link
Copy Markdown

linear bot commented Apr 14, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant